package bean;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import psc.model.base.acesso.Cliente;
import psc.model.base.acesso.Usuario;
import util.Util;
import facade.FacadeCliente;
import javax.servlet.http.*;

/**
 * 
 * @author Deyvison
 */
@ManagedBean
@SessionScoped
public class LoginBean {

	private Usuario usuario = new Cliente();
	private Boolean msgErro = false;

	public LoginBean() {
		usuario = new Cliente();
	}

	public Boolean getMsgErro() {
		return msgErro;
	}

	public void setMsgErro(Boolean msgErro) {
		this.msgErro = msgErro;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public String efetuaLogin() {
		FacadeCliente facadeCliente = new FacadeCliente();
		this.usuario = facadeCliente.buscarPorExemplo((Cliente) this.usuario);
		if (this.usuario != null) {
			this.usuario.setLogado(true);
			Util.setHttpSessionObject("usuario", this.usuario);
			this.msgErro = false;
		} else {
			this.msgErro = true;
			this.usuario = new Cliente();
		}

		return "index.xhtml";
	}

	public String efetuaLogoff() {
		FacesContext context = FacesContext.getCurrentInstance();
		context.getExternalContext().getSessionMap().remove("usuario");
		FacesContext facesContext = FacesContext.getCurrentInstance();
		HttpSession session = (HttpSession) facesContext.getExternalContext()
				.getSession(false);
		session.invalidate();
		return "logoff";
	}
}
